
layui.use(['element', 'layer'], function () {
    var layer = layui.layer;

    layer.config({
        extend: 'journey/style.css', //加载新皮肤
        skin: 'layer-ext-journey' //一旦设定，所有弹层风格都采用此主题。
    });
});

/**
 * layer 模板渲染封装
 *
 * @param params 模板
 */
function layuiTemplate(params) {
    if (typeof params === 'string') {
        return layui.laytpl(params).render({});
    }
    return layui.laytpl(params.tpl).render(params.datas || {});
}

function layerClose(index) {
    return layui.layer.close(index);
}

function layerTemplate(tpl_params, layer) {
    return layui.layer.open(Object.assign({
        type: 1,
        resize: false,
        content: layuiTemplate(tpl_params)
    }, layer || {}));
}

/**
 *
 * @param layer
 * @param tpl
 * @param tpl_params
 */
function layerTpl(layer, tpl, tpl_params) {
    return layui.layer.open(Object.assign({
        type: 1,
        resize: false,
        content: layuiTemplate({tpl: tpl, datas: tpl_params})
    }, layer || {}));
}

function layerConfirm(title, success) {
    return layui.layer.confirm(title, {}, success);
}

function layuiFormRender(s, f) {
    return layui.form.render(s, f);
}

function layuiFormOn(s, e) {
    return layui.form.on(s, e);
}

/**
 *
 * @param options
 * @param events
 */
function layuiTable(options, events) {
    options.cols = options.cols.map(function (col1) {
        return col1.map(function (col) {
            if (!col.align) {
                col.align = 'center';
            }
            return col;
        });
    });
    return layui.table.render(Object.assign({
        page: true, //开启分页
        request: {
            pageName: 'page', //页码的参数名称，默认：page
            limitName: 'limit' //每页数据量的参数名，默认：limit
        },
        response: {
            statusName: 'errCode', //数据状态的字段名称，默认：code
            statusCode: 0, //成功的状态码，默认：0
            msgName: 'errMsg', //状态信息的字段名称，默认：msg
            countName: 'count', //数据总数的字段名称，默认：count
            dataName: 'data' //数据列表的字段名称，默认：data
        },
        loading: true
    }, options));
}

function layuiTableOn(event, callback) {
    return layui.table.on(event, callback);
}